import {exec} from 'child_process';

const cmd = 'chcp 65001 && tasklist /FO CSV';
const getSysTaskList = () => {
    return new Promise((resolve, reject) => {

        try {
            exec(cmd, (error: any, stdout: any, stderr: any) => {
                if (error) {
                    console.error(`exec error: ${error}`);
                    return;
                }
                if (stderr) {
                    console.error(`stderr: ${stderr}`);
                    return;
                }

                // 移除命令输出的第一行，它是标题行
                const lines = stdout.split('\r\n');
                lines.shift(); // 移除语言转换行 Active code page: 65001
                lines.shift(); // 移除字段名的首行
                lines.pop();    // 移除末尾的空行

                // 解析每一行，转换为JSON对象
                const processes = lines.map((line: any) => {
                    const parts = line.split('","').map((item: string) => item.replaceAll('"', ''));

                    return {
                        ImageName: parts[0],
                        PID: Number(parts[1]),
                        SessionName: parts[2],
                        SessionNumber: parts[3],
                        MemUsage: parts[4]
                    };
                });

                resolve(processes);
            });
        }catch (err){
            console.log('getSysTaskList error');
            resolve([]);
        }
    });
};


export default getSysTaskList;